home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / libs / gadutil.lha / GadUtil / docs / BigDoc.doc < prev    next >
Text File  |  1995-06-26  |  57KB  |  2,117 lines

  1. TABLE OF CONTENTS
  2.  
  3. gadutil.library/GU_LayoutGadgetsA
  4. gadutil.library/GU_FreeLayoutGadgets
  5. gadutil.library/GU_CreateGadgetA
  6. gadutil.library/GU_SetGadgetAttrsA
  7. gadutil.library/GU_GetIMsg
  8. gadutil.library/GU_CountNodes
  9. gadutil.library/GU_GadgetArrayIndex
  10. gadutil.library/GU_BlockInput
  11. gadutil.library/GU_FreeInput
  12. gadutil.library/GU_FreeGadgets
  13. gadutil.library/GU_SetGUGadAttrsA
  14. gadutil.library/GU_CoordsInGadBox
  15. gadutil.library/GU_GetGadgetPtr
  16. gadutil.library/GU_TextWidth
  17. gadutil.library/GU_GetLocaleStr
  18. gadutil.library/GU_CreateLocMenuA
  19. gadutil.library/GU_OpenCatalog
  20. gadutil.library/GU_CloseCatalog
  21. gadutil.library/GU_DisableGadget
  22. gadutil.library/GU_SetToggle
  23. gadutil.library/GU_RefreshBoxes
  24. gadutil.library/GU_RefreshWindow
  25. gadutil.library/GU_OpenFont
  26. gadutil.library/GU_NewList
  27. gadutil.library/GU_ClearList
  28. gadutil.library/GU_DetachList
  29. gadutil.library/GU_AttachList
  30. gadutil.library/GU_AddTail
  31. gadutil.library/GU_ChangeStr
  32. gadutil.library/GU_CreateContext
  33. gadutil.library/GU_GetGadgetAttrsA
  34. gadutil.library/GU_CreateMenusA
  35. gadutil.library/GU_FreeMenus
  36. gadutil.library/GU_LayoutMenuItemsA
  37. gadutil.library/GU_LayoutMenusA
  38. gadutil.library/GU_GetVisualInfoA
  39. gadutil.library/GU_FreeVisualInfo
  40. gadutil.library/GU_BeginRefresh
  41. gadutil.library/GU_EndRefresh
  42. gadutil.library/GU_FilterIMsg
  43. gadutil.library/GU_PostFilterIMsg
  44. gadutil.library/GU_ReplyIMsg
  45. gadutil.library/GU_DrawBevelBoxA
  46. gadutil.library/GU_FindNode
  47. gadutil.library/GU_NodeUp
  48. gadutil.library/GU_NodeDown
  49. gadutil.library/GU_LayoutGadgetsA              gadutil.library/LayoutGadgetsA
  50.  
  51.    NAME
  52.     GU_LayoutGadgetsA -- Formats an array of GadTools gadgets.
  53.  
  54.    SYNOPSIS
  55.     gad_info = GU_LayoutGadgetsA(gad_list, gadgets, screen, taglist)
  56.     D0,A0                        A0        A1       A2      A3
  57.  
  58.     APTR GU_LayoutGadgetsA(struct Gadget **, struct LayoutGadget *,
  59.         struct Screen *, struct TagItem *);
  60.  
  61.    FUNCTION
  62.     Creates a laid-out gadget list from a LayoutGadget array, which
  63.     describes each gadget you want to create. Gadgets you create can
  64.     be any of the gadget kinds supported by GadTools, as well as any
  65.     of the extended gadget kinds provided by GadUtil.
  66.     The gadgets created by this routine, can easily be defined so that
  67.     they adjust their sizes and positions to accomodate fonts of any
  68.     size, and also adapt to different locale strings.
  69.     
  70.    INPUTS
  71.     gad_list - a pointer to the gadget list pointer. This will be
  72.            ready to pass to OpenWindowTagList() or AddGList().
  73.  
  74.     gadgets - an array of LayoutGadget structures. Each element in
  75.           the array describes one of the gadgets that you will
  76.           be creating. Each LayoutGadget structure in the array
  77.           should be initialized as follows:
  78.  
  79.           lg_GadgetID - the ID for this gadget. An ID of -1
  80.                 terminates the array.
  81.  
  82.           lg_LayoutTags - tags that describes each gadget to
  83.                   create. These tags is used to calculate
  84.                   positions, sizes and other attributes
  85.                   of the created gadgets.
  86.  
  87.           lg_GadToolsTags - additional tags for GadTools gadgets.
  88.                     This would be the same set of tags that
  89.                     you might pass to CreateGadgetA() if
  90.                     you were using GadTools directly.
  91.  
  92.           lg_Gadget - the pointer to the Gadget structure created
  93.                   for this gadget will be placed here. You
  94.                   should initialize this field to NULL. The
  95.                   gadget structure created should be considered
  96.                   READ ONLY! This field will contain a pointer
  97.                   to a struct BBoxData, if the created gadget
  98.                   kind is a BEVELBOX_KIND.
  99.  
  100.           Assembly language programmers can use the macro GADGET:
  101.  
  102.             GADGET GadgetID, Gad_LayoutTags, Gad_GadToolsTags
  103.  
  104.     screen - a pointer to the screen that the gadgets will be created
  105.          for. This is required, so that the layuot routines can
  106.          get display info about the screen where the rendering
  107.          will be done. Use LockPubScreen() to use a public screen,
  108.          or OpenScreenTagList(), if you want to use your own screen.
  109.  
  110.     taglist - pointer to a taglist (see in a later release of this
  111.           library for allowed tags, or click here to jump to the
  112.           PRELIMINARY DOCS for this function).
  113.  
  114.    RESULT
  115.     gad_info - a pointer to a private structure. You must keep this
  116.            value and pass it to GU_FreeLayoutGadgets() later on
  117.            in order to free up all resources used by your gadgets.
  118.            This pointer is also used in a lot of other functions
  119.            in this library.
  120.  
  121.    NOTES
  122.     You must be careful with the taglist in the lg_LayoutTags field.
  123.     Tags are processed sequentally in the order you give them in, and
  124.     if a tag references another gadget (eg. the GL_TopRel tag), then
  125.     processing of the current gadget halts while the referenced gadget
  126.     is processed (if it has not already been processed). Problems can
  127.     occur if this gadget refers back to the original gadget that
  128.     referenced if, if it is referring to a field that has not yet been
  129.     processed in that gadget.
  130.  
  131.    SEE ALSO
  132.     GU_FreeLayoutGadgets(), GU_CreateGadgetA(), gadtools/CreateGadgetA()
  133.                                 GadUtil tags
  134.                                ~~~~~~~~~~~~~~
  135. Tags to use for the yet undocumented function GU_LayoutGadgetsA().
  136.  
  137. Tags to use in the tag lists for each gadget to create. Note that
  138. you do not have to specify any tags that not change from gadget to
  139. gadget.
  140.  
  141. GU_GadgetKind (ULONG)
  142.     Can be any of the standard GadTools gadget kinds, or one of the
  143.     extensions provided by GadUtil. Currently extended types are:
  144.  
  145.     IMAGE_KIND
  146.         A gadget that uses an Intuition Image structure for its
  147.         contents. Selected and unselected states can use different
  148.         images. The images are centered automatically.
  149.  
  150.         Extra tags for IMAGE_KIND:
  151.  
  152.             GUIM_Image (struct Image *)
  153.                 Image for the gadget in its unselected state. This is
  154.                 the only required (extra) tag for IMAGE_KIND gadgets.
  155.  
  156.             GUIM_SelectImg (struct Image *)
  157.                 Image for the gadget in its selected state. If this tag
  158.                 is omitted, the selected image will be the same as the
  159.                 unselected, and only the border and the background color
  160.                 will change (depending on the GUIM_BOOPSILook tag).
  161.  
  162.             GUIM_ReadOnly (BOOL)
  163.                 TRUE to create a read-only image gadget.
  164.  
  165.             GUIM_BOOPSILook (BOOL)
  166.                 This tag will allow the programmer to select how the
  167.                 secondary image should be shown, if only one image is
  168.                 used for the gadget. Defaults to TRUE, which means that
  169.                 the background color will change when the user selects
  170.                 the gadget.
  171.  
  172.     DRAWER_KIND
  173.         A "select drawer" image button. This can be used to select
  174.         a path, but is often used to select files.
  175.  
  176.     FILE_KIND
  177.         A "select file" image button. This can be used to allow the
  178.         user to select a file. Most programs uses the DRAWER_KIND
  179.         for both file and path selection.
  180.  
  181.     BEVELBOX_KIND
  182.         A GadTools bevelbox. Use this to avoid the use of absolute
  183.         sizing of bevelboxes. All bevel box kinds from OS3.0 is
  184.         supported, even if the computer only has OS2.0.
  185.  
  186.         Extra tags for BEVELBOX_KIND:
  187.  
  188.             GUBB_Recessed (BOOL)
  189.                 Create a recessed ("pushed in") bevel box. Differs from
  190.                 the GadTools tag GTBB_Recessed, in that it works with
  191.                 both TRUE and FALSE as parameter. GadTools creates a
  192.                 recessed box independent from the given value.
  193.  
  194.                 Defaults to FALSE.
  195.  
  196.             GUBB_FrameType (ULONG)
  197.                 Determines what kind of box this function renders. The
  198.                 current available alternatives are:
  199.  
  200.                     BFT_BUTTON - Generates a box like what is used around
  201.                                  a GadTools BUTTON_KIND gadget.
  202.  
  203.                     BFT_RIDGE - Generates a box like what is used around
  204.                                 a GadTools STRING_KIND gadget.
  205.  
  206.                     BFT_DROPBOX - Generates a box suitable for a standard
  207.                                   icon drop box imagery.
  208.  
  209.                     BFT_HORIZBAR - Generates a horizontal shadowed line.
  210.                                    Can also be used to draw a normal line,
  211.                                    using 1 for the line's height.
  212.  
  213.                     BFT_VERTBAR - Generates a vertical shadowed line. Can
  214.                                   also be used to draw a normal line, using
  215.                                   1 for the line's width.
  216.  
  217.                 Defaults to BFT_BUTTON.
  218.  
  219.             GUBB_TextColor (ULONG)
  220.                 Selects which color to print the title text in. Only useful
  221.                 for a bevelbox with a title. Defaults to the color of the
  222.                 TEXTPEN.
  223.  
  224.             GUBB_TextPen (ULONG)
  225.                 Selects which pen to print the title text in. Only
  226.                 useful for a bevelbox with a title. Defaults to TEXTPEN.
  227.                 This tag overrides the GUBB_TextColor tag.
  228.  
  229.             GUBB_Flags (ULONG)
  230.                 Currently, only text placement flags are defined. These are:
  231.  
  232.                 Y-pos flags
  233.                 ~~~~~~~~~~~
  234.                     BB_TEXT_ABOVE - Places the bevel box text above the upper
  235.                                     border of the box           ___Example___
  236.  
  237.                     BB_TEXT_IN    - Places the bevel box text at the upper
  238.                                     border of the box           ---Example---
  239.  
  240.                     BB_TEXT_BELOW - Places the bevel box text below the upper
  241.                                     border of the box           ___       ___
  242.                                                                    Example
  243.                 X-pos flags
  244.                 ~~~~~~~~~~~
  245.                     BB_TEXT_CENTER - Places the bevel box text in the middle
  246.                                      of the upper border        ---Example---
  247.  
  248.                     BB_TEXT_LEFT   - Places the bevel box text 8 pixels from
  249.                                      the left edge of the box   -Example-----
  250.  
  251.                     BB_TEXT_RIGHT  - Places the bevel box text 8 pixels from
  252.                                      the right edge of the box  -----Example-
  253.  
  254.                 Default if BB_TEXT_ABOVE!BB_TEXT_CENTER. Combine the x and y
  255.                 position flags by OR:ing them together. Don't combine two X
  256.                 or two Y flags together.
  257.                 
  258.     Changed tags, and additions to GadTools:
  259.  
  260.     LISTVIEW_KIND:
  261.  
  262.         GTLV_ShowSelected (UWORD id)
  263.  
  264.             This tag was changed, so that you don't have to create the
  265.             string gadget before all other gadgets. The difference from
  266.             this tag in GadTools, is that we now have to give the ID of
  267.             the string gadget to use to show the selected item.
  268.  
  269.             An example of a valid (and probably most useful) gadget to
  270.             use for GTLV_ShowSelected:
  271.  
  272.             ShowSelGad:
  273.                 dc.l    GU_GadgetKind,  STRING_KIND,    GU_AutoHeight,  4
  274.                 dc.l    GU_DupeWidth,   GAD_LISTVIEW,   GU_GadgetText,  NULL
  275.                 dc.l    TAG_DONE
  276.  
  277.             This gadget MUST be before the LISTVIEW gadget in the LayoutGadget
  278.             array.
  279.  
  280.             Special:
  281.  
  282.             ti_Data = -1    Creates a read-only gadget below the listview,
  283.                             same as for GTLV_ShowSelected, 0  for GadTools.
  284.  
  285.             ti_Data =  x    Gadget ID for the gadget that the selected item
  286.                             should be displayed in. Same as GadTools reaction
  287.                             on a gadget pointer in ti_Data.
  288.  
  289.             This gadget's ti_Data field will be changed during the creation
  290.             of the gadget, but will be changed back before GU_LayoutGadgets
  291.             returns.
  292.  
  293.     MX_KIND:
  294.  
  295.         The gng_GadgetText field in the NewGadget structure can be used even
  296.         with MX_KIND gadgets. This should have been included in GadTools.
  297.         The gadget text will always be placed ABOVE the gadget, on the same
  298.         side as the other texts for the gadget. Positions are checked against
  299.         WBPattern & SerialPrefs to get them "right". The GU_GadgetText and
  300.         GU_LocaleText tags are used to access this field.
  301.  
  302. Tags for all gadget kinds:
  303.  
  304. Gadget width control:
  305.  
  306.     GU_Width (UWORD wid)
  307.         Absolute width of the gadget. Not recommended to use for other
  308.         gadgets than IMAGE_KIND, DRAWER_KIND and FILE_KIND.
  309.  
  310.     GU_DupeWidth (UWORD id)
  311.         Duplicate the width of another gadget.
  312.  
  313.     GU_AutoWidth (WORD add)
  314.         Width = length of text label + ti_Data. This tag doesn't work
  315.         as it should with CYCLE_KIND and MX_KIND gadgets. Will be fixed
  316.         later. Use GU_Columns for those kinds until this is fixed.
  317.  
  318.     GU_Columns (UWORD numcols)
  319.         Set the gadget width so that approximately ti_Data columns of
  320.         text will fit.
  321.  
  322.     GU_AddWidth (WORD add)
  323.         Add ti_Data to the total width calculation.
  324.  
  325.     GU_MinWidth (UWORD wid)
  326.         Make the gadget at least ti_Data pixels wide.
  327.  
  328.     GU_MaxWidth (UWORD wid)
  329.         Make the gadget at most ti_Data pixels wide.
  330.  
  331.     GU_AddWidChar (WORD chars)
  332.         Add the length of ti_Data characters to the total width calculation.
  333.  
  334. Gadget height control:
  335.  
  336.     GU_Height (UWORD hei)
  337.         Absolute height of the gadget. Not recommended to use for other
  338.         gadgets than IMAGE_KIND, DRAWER_KIND and FILE_KIND.
  339.         
  340.     GU_DupeHeight (UWORD id)
  341.         Duplicate the height of another gadget.
  342.  
  343.     GU_AutoHeight (WORD add)
  344.         Height = height of the gadget's font + ti_Data. This tag doesn't
  345.         work as it should with MX_KIND gadgets. Will be fixed later.
  346.         Use GU_HeightFactor or GU_Height for MX_KIND until this is fixed.
  347.  
  348.     GU_HeightFactor (UWORD numlines)
  349.         Set the gadget height to approximately ti_Data lines.
  350.  
  351.     GU_AddHeight (WORD add)
  352.         Add ti_Data to the total height calculation.
  353.  
  354.     GU_MinHeight (UWORD wid)
  355.         Make the gadget at least ti_Data pixels high.
  356.  
  357.     GU_MaxHeight (UWORD wid)
  358.         Make the gadget at most ti_Data pixels high.
  359.  
  360.     GU_AddHeiLines (WORD numlines)
  361.         Add the height of ti_Data/2 lines to the final height calculation.
  362.         The numlines argument is given in units of 1/2 lines to get
  363.         better resolution (ti_Data of 4 means that the height of 2
  364.         lines should be added).
  365.  
  366. Gadget top edge control:
  367.  
  368.     GU_Top, GU_TopRel and GU_AlignTop locks the top edge of the gadget, and
  369.     allows any bottom edge control tag to adjust the height, so that both
  370.     top and bottom edges will be correct.
  371.  
  372.     GU_Top (UWORD ypos)
  373.         Absolute top edge of the gadget. Not recommended to use for other
  374.         gadgets than the top-most gadgets.
  375.  
  376.     GU_TopRel (UWORD id)
  377.         Make the top edge relative to another gadgets bottom edge. This
  378.         gadget will be placed BELOW the given gadget.
  379.  
  380.     GU_AddTop (WORD add)
  381.         Add ti_Data to the final top edge calculation.
  382.  
  383.     GU_AlignTop (UWORD id)
  384.         Align the top edge of the gadget with another gadgets top edge.
  385.  
  386.     GU_AdjustTop (WORD add)
  387.         Add the height of the text font + ti_Data to the top edge.
  388.  
  389.     GU_AddTopLines (WORD numlines)
  390.         Add the height of ti_Data/2 lines to the final top edge. The
  391.         numlines argument is given in units of 1/2 lines to get better
  392.         resolution (ti_Data of 4 means that the height of 2 lines
  393.         should be added).
  394.  
  395. Gadget bottom edge control:
  396.  
  397.     GU_Bottom, GU_BottomRel and GU_AlignBottom locks the bottom edge of the
  398.     gadget, and allows any top edge control tag to adjust the height, so that
  399.     both top and bottom edges will be correct.
  400.  
  401.     GU_Bottom (UWORD ypos)
  402.         Absolute bottom edge of the gadget. Not recommended to use for other
  403.         gadgets than the bottom-most gadgets. Should not be necessary to use
  404.         at all.
  405.  
  406.     GU_BottomRel (UWORD id)
  407.         Make the bottom edge relative to another gadgets top edge. This
  408.         gadget will be placed ABOVE the given gadget.
  409.  
  410.     GU_AddBottom (WORD add)
  411.         Add ti_Data to the final bottom edge calculation.
  412.  
  413.     GU_AlignBottom (UWORD id)
  414.         Align the bottom edge of the gadget with another gadgets bottom edge.
  415.  
  416.     GU_AdjustBottom (WORD add)
  417.         Subtract the height of the gadget's font + ti_Data from the top edge.
  418.         This will move the gadget UPWARDS (ti_Data + font height) pixels.
  419.  
  420. Gadget left edge control:
  421.  
  422.     GU_Left, GU_LeftRel and GU_AlignLeft locks the left edge of the gadget,
  423.     and allows any right edge control tag to adjust the width, so that both
  424.     left and right edges will be correct.
  425.  
  426.     GU_Left (UWORD xpos)
  427.         Absoulute left edge of the gadget. Not recommended to use for other
  428.         gadgets than the left-most gadgets.
  429.  
  430.     GU_LeftRel (UWORD id)
  431.         Make the left edge relative to another gadgets right edge. This
  432.         gadget will be placed TO THE RIGHT of the given gadget.
  433.  
  434.     GU_AddLeft (WORD add)
  435.         Add ti_Data to the final left edge calculation.
  436.  
  437.     GU_AlignLeft (UWORD id)
  438.         Align the left edge of the gadget with another gadgets left edge.
  439.  
  440.     GU_AdjustLeft (WORD add)
  441.         Add the width of the gadget label + ti_Data to the left edge.
  442.  
  443.     GU_AddLeftChar (WORD chars)
  444.         Add the length of ti_Data characters to the left edge.
  445.  
  446. Gadget right edge control:
  447.  
  448.     GU_Right, GU_RightRel and GU_AlignRight locks the right edge of the
  449.     gadget, and allows any left edge control tag to adjust the width, so
  450.     that both left and right edges will be correct.
  451.  
  452.     GU_Right (UWORD xpos)
  453.         Absoulute right edge of the gadget. Not recommended to use for other
  454.         gadgets than the right-most gadgets. Should not be necessary to use
  455.         at all.
  456.  
  457.     GU_RightRel (UWORD id)
  458.         Make the right edge relative to another gadgets left edge. This
  459.         gadget will be placed TO THE LEFT of the given gadget.
  460.  
  461.     GU_AddRight (WORD add)
  462.         Add ti_Data to the final right edge calculation.
  463.  
  464.     GU_AlignRight (UWORD id)
  465.         Align the right edge of the gadget with another gadgets right edge.
  466.  
  467.     GU_AdjustRight (WORD add)
  468.         Add the width of the gadget label + ti_Data to the left edge.
  469.  
  470. Other tags:
  471.  
  472.     GU_ToggleSelect (BOOL)
  473.         Create a toggle select gadget. Works with BUTTON_KIND and IMAGE_KIND
  474.         gadgets.
  475.  
  476.     GU_Selected (BOOL)
  477.         Set the initial value of a toggle select gadget.
  478.  
  479.     GU_Hotkey (CHAR)
  480.         Hotkey that should simulate a press (release) of a gadget.
  481.  
  482.     GU_HotkeyCase (BOOL)
  483.         Make the hotkey case-sensitive. Default is not case sensitive.
  484.  
  485.     GU_LabelHotkey (BOOL)
  486.         Get the hotkey directly from the gadget's label. The hotkey can
  487.         be case-sensitive, but not for CYCLE, LISTVIEW and MX gadgets.
  488.  
  489.     GU_RawKey (BYTE)
  490.         Use a rawkey as a gadget hotkey. May not be case-sensitive.
  491.         
  492. Tags that gives access to other fields in the NewGadget structure:
  493.  
  494.     GU_GadgetText (UBYTE *)
  495.         A pointer to the gadget's label. Will be copied directly into the
  496.         gng_GadgetText field of the NewGadget structure.
  497.  
  498.     GU_TextAttr (struct TextAttr *)
  499.         A pointer to an initialized TextAttr structure (to select the font).
  500.         Will be copied directly into the gng_TextAttr field of the NewGadget
  501.         structure.
  502.  
  503.     GU_Flags (ULONG)
  504.         Gadget flags. Currently available flags are as for GadTools, but
  505.         here is a short list of them:
  506.  
  507.         PLACETEXT_LEFT - Place the gadget label right aligned on the left
  508.                          side of the gadget.
  509.  
  510.         PLACETEXT_RIGHT - Place the gadget label left aligned on the right
  511.                           side of the gadget.
  512.  
  513.         PLACETEXT_ABOVE - Place the gadget label centered above the gadget.
  514.  
  515.         PLACETEXT_BELOW - Place the gadget label centered below the gadget.
  516.  
  517.         PLACETEXT_IN - Place the gadget label centered inside the gadget.
  518.  
  519.         NG_HIGHLABEL - Highlight the label (render it using SHINEPEN).
  520.  
  521.     GU_UserData (APTR)
  522.         Storage for your own data. Will probably be removed, since GadUtil
  523.         uses this filed for an internal structure (with some external
  524.         available fields).
  525.  
  526.     GU_LocaleText (ULONG stringid)
  527.         Get gadget label from a catalog. This allows easy localization of
  528.         all new programs.
  529.  
  530. Tags that should be passed directly to GU_LayoutGadgetsA():
  531.  
  532.     GU_RightExtreme (ULONG *)
  533.         A pointer to a longword that is used to store the rightmost point
  534.         that a gadget will exist in.
  535.  
  536.     GU_LowerExtreme (ULONG *)
  537.         A pointer to a longword that is used to store the lowermost point
  538.         that a gadget woll exist in.
  539.  
  540.     GU_Catalog (struct Catalog *)
  541.         A pointer to the programs translation catalog. NULL indicates that
  542.         the program should use the internal strings. You must open the
  543.         catalog by yourself (use GU_OpenCatalog() or locale/OpenCatalog).
  544.         The GU_AppStrings tag MUST be used together with this tag.
  545.  
  546.     GU_DefTextAttr (struct TextAttr *)
  547.         Specifies the default font to use with all gadgets. Can be over-
  548.         ridden with GU_TextAttr tag for each gadget.
  549.  
  550.     GU_AppStrings (struct AppString *)
  551.         A pointer to an array of AppString structures. These strutures
  552.         contains the programs internal strings.
  553.         This tag must be used together with the GU_Catalog tag.
  554.  
  555.     GU_BorderLeft (ULONG)
  556.         Size of the window's left border.
  557.  
  558.     GU_BorderTop (ULONG)
  559.         Size of the window's top border.
  560.  
  561.     GU_NoCreate (BOOL)
  562.         Don't create any gadgets. Useful to determine if the window will
  563.         fit on the screen etc.
  564. gadutil.library/GU_FreeLayoutGadgets        gadutil.library/FreeLayoutGadgets
  565.  
  566.    NAME
  567.     GU_FreeLayoutGadgets -- Frees gadgets laid out with GU_LayoutGadgetsA().
  568.  
  569.    SYNOPSIS
  570.     GU_FreeLayoutGadgets(gad_info)
  571.                              A0
  572.  
  573.     VOID GU_FreeLayoutGadgets(APTR);
  574.  
  575.    FUNCTION
  576.  
  577.    INPUTS
  578.  
  579.    TAGS
  580.  
  581.    RESULT
  582.  
  583.    EXAMPLE
  584.  
  585.    NOTES
  586.  
  587.    WARNING
  588.  
  589.    BUGS
  590.  
  591.    SEE ALSO
  592. gadutil.library/GU_CreateGadgetA                gadutil.library/CreateGadgetA
  593.  
  594.    NAME
  595.     GU_CreateGadgetA -- Create a gadget with built-in hotkey support.
  596.  
  597.    SYNOPSIS
  598.     gad = CreateGadgetA(kind, prevgad, newgad, taglist)
  599.     D0,A0               D0    A0       A1      A2
  600.  
  601.     struct Gadget *GU_CreateGadgetA(ULONG, struct Gadget *,
  602.                     struct NewGadget *, struct TagItem *);
  603.  
  604.    FUNCTION
  605.     GU_CreateGadgetA() allocates and initializes a new gadget of the
  606.     specified kind, and attaches it to the previous gadget. The gadget
  607.     is created based on the supplied kind, NewGadget structure, and
  608.     tags.
  609.  
  610.     This function differs from the GadTools equivalent by supporting
  611.     some extra tags to allow the gadget to be selected using the
  612.     keyboard.
  613.  
  614.    INPUTS
  615.     kind - kind of gadget to create. One of the XXX_KIND values
  616.            defined in <libraries/gadtools.h>.
  617.  
  618.     prevgad - pointer to the previous gadget that this new gadget
  619.           should be attached to. This function will fail if
  620.           this value is NULL.
  621.  
  622.     newgad - a filled in NewGadget structure describing the desired
  623.          gadget's size, position, label, etc.
  624.  
  625.     taglist - pointer to an array of tags providing optional extra
  626.           parameters, or NULL.
  627.  
  628.    TAGS
  629.     All kinds:
  630.  
  631.     GT_Underscore - Indicates the symbol that precedes the character
  632.         in the gadget label to be underscored. This can be to
  633.         indicate keyboard equivalents for gadgets. GadUtil has
  634.         the ability to process the keyboard equivalents if some
  635.         other tags are used.
  636.  
  637.     GU_Hotkey - This tag selects the hotkey to be used as an automatic
  638.         keyboard command for the gadget. The ti_Data field should
  639.         contain the ASCII or RAWKEY code for the hotkey.
  640.         This tag may be used together with the GU_HotkeyCase and
  641.         GU_LabelHotkey. The GU_RawKey tag requires this tag.
  642.  
  643.     GU_HotkeyCase - This tag makes the keyboard command case-sensitive.
  644.         This tag may not be used with GU_RawKey.
  645.  
  646.     GU_LabelHotkey - This tag picks the hotkey from the gadget text
  647.         field in the NewGadget structure when the gadget is created.
  648.         If no key is marked with the underscore, the GU_HotKey code
  649.         will be used.
  650.  
  651.         This tag supports and requires the GT_Underscore tag. The
  652.         character that was given in the GT_Underscore tag will be
  653.         used to find the code for the hotkey.
  654.  
  655.     GU_RawKey - This tag makes the hotkey code to a RAWKEY code. All
  656.         keys on the keyboard has one rawkey code that matches the
  657.         key.
  658.  
  659.         If your program also gets VANILLAKEY events, you must be
  660.         careful when selecting the rawkey code to be used as a
  661.         keyboard shortcut for this gadget. RAWKEY events will only
  662.         be sent for special keys (such as the HELP, Control, Alt
  663.         and function keys) that don't map to a single character. 
  664.         All keys that maps to a single character will be processed
  665.         as a VANILLAKEY event.
  666.  
  667.         This tag may not be used with (and will also disable) the
  668.         GU_HotkeyCase and GU_LabelHotkey tags.
  669.  
  670.     Kind specific tags:
  671.         See the GadTools function CreateGadgetA for all other tags.
  672.  
  673.    RESULT
  674.     gad - pointer to the new gadget, or NULL if the allocation failed
  675.           or if prevgad was NULL.
  676.  
  677.    NOTES
  678.     Note that the ng_VisualInfo and ng_TextAttr fields of the NewGadget
  679.     structure must be set to valid VisualInfo and TextAttr pointers, or
  680.     this function will fail.
  681.  
  682.    SEE ALSO
  683.     GU_FreeGadgets(), GU_SetGadgetAttrsA(), GU_GetVisualInfoA(),
  684.     GU_GetIMsg, gadtools/CreateGadgetA, <libraries/gadtools.h>
  685. gadutil.library/GU_SetGadgetAttrsA         gadutil.library/GU_SetGadgetAttrsA
  686.  
  687.    NAME
  688.     GU_SetGadgetAttrsA -- Change the attributes of a GadTools gadget.
  689.  
  690.    SYNOPSIS
  691.     GU_SetGadgetAttrsA(gad, win, req, taglist)
  692.                        A0    A1  A2   A3
  693.  
  694.     VOID GU_SetGadgetAttrsA(struct Gadget *, struct Window *,
  695.                 struct Requester *, struct TagItem *);
  696.  
  697.    FUNCTION
  698.     Change the attributes of the specified gadget, according to the
  699.     attributes chosen in the tag list. If an attribute is not provided
  700.     in the tag list, its value remains the unchanged. This function
  701.     also stores some information for the hotkey part of the library.
  702.  
  703.     Use this in place of the gadtools function GT_SetGadgetAttrsA().
  704.  
  705.    INPUTS
  706.     gad - pointer to the gadget in question. This address may be NULL,
  707.           in which case this function does nothing.
  708.  
  709.     win - pointer to the window containing the gadget. Starting with
  710.           V39 (of the OS), this value may be NULL, in which case the
  711.           internal attributes of the gadgets are altered but no
  712.           rendering occurs.
  713.  
  714.     req - reserved for future use, should always be NULL.
  715.  
  716.     taglist - pointer to an array of tags providing optional extra
  717.           parameters, or NULL.
  718.  
  719.    TAGS
  720.     See the GadTools function GT_SetGadgetAttrsA() for all tags, since
  721.     this is an extended version of that routine.
  722.  
  723.    NOTES
  724.     This function may not be called inside of a GU_BeginRefesh() /
  725.     GU_EndRefresh() session. (as always, restrict yourself to simple
  726.     rendering functions).
  727.  
  728.    SEE ALSO
  729.     gadtools/GT_SetGadgetAttrsA(), GU_GetGadgetAttrsA()
  730. gadutil.library/GU_GetIMsg                         gadutil.library/GU_GetIMsg
  731.  
  732.    NAME
  733.     GU_GetIMsg -- Get an IntuiMessage, process GadTools & Hotkey events.
  734.  
  735.    SYNOPSIS
  736.     imsg = GU_GetIMsg(intuiport)
  737.     D0,A0,SR(Z)       A0
  738.  
  739.     struct IntuiMessage *GU_GetIMsg(struct MsgPort *);
  740.  
  741.    FUNCTION
  742.     Use GU_GetIMsg() in place of the usual exec.library/GetMsg() when
  743.     reading IntuiMessages from your window's UserPort. If needed, the
  744.     GadTools dispatcher will be invoked, and suitable processing will
  745.     be done for gadget actions.
  746.     If the message is an IDCMP_VANILLAKEY or an IDCMP_RAWKEY, this
  747.     routine will search through all gadgets    for that key, and if it is
  748.     found, the message will change to the type of message that gadget
  749.     is supposed to send. If the key is not used as a hotkey, the
  750.     message will not change. 
  751.     If there are no messages (or if the only messages are meaningful
  752.     only to GadTools/GadUtil), NULL will be returned.
  753.  
  754.    INPUTS
  755.     intuiport - the Window->UserPort of a window that is using the
  756.         GadUtil library.
  757.  
  758.    RESULT
  759.     imsg - pointer to modified IntuiMessage, or NULL if there are
  760.            no applicable messages.
  761.  
  762.     SR (Z) - the zero flag will be set if there was no message. This
  763.            is probably only useful for assembly language programmers.
  764.  
  765.    NOTES
  766.     Be sure to use GU_ReplyIMsg() and not exec.library/ReplyMsg() on
  767.     messages obtained with GU_GetIMsg().
  768.     If you intend to do more with the resulting message than read its
  769.     fields, act on it, and reply it, you may find GU_FilterIMsg()
  770.     more appropriate.
  771.  
  772.     Starting with V39 (of the OS), this function actually returns a
  773.     pointer to an ExtIntuiMessage structure, but the prototype was
  774.     not changed for source code compatibility with older software.
  775.  
  776.    SEE ALSO
  777.     GU_ReplyIMsg(), GU_FilterIMsg()
  778. gadutil.library/GU_CountNodes                   gadutil.library/GU_CountNodes
  779.  
  780.    NAME
  781.     GU_CountNodes -- Count number of nodes in a list.
  782.  
  783.    SYNOPSIS
  784.     numnodes = GU_CountNodes(list)
  785.     D0                       A0
  786.  
  787.     ULONG GU_CountNodes(struct List *);
  788.  
  789.    FUNCTION
  790.     This function will count the number of nodes attached to a list.
  791.  
  792.    INPUTS
  793.     list - a pointer to the list to get the number of nodes in
  794.  
  795.    RESULT
  796.     numnodes - number of nodes that was in the list for the moment.
  797.  
  798.    NOTES
  799.     Use Forbid() and Permit() around a call to this function if you
  800.     are using it on a list that can change at any time (e.g. a list
  801.     that wasn't created by yourself). This function may not be accurate
  802.     when you are using it on a system list.
  803. gadutil.library/GU_GadgetArrayIndex       gadutil.library/GU_GadgetArrayIndex
  804.  
  805.    NAME
  806.     GU_GadgetArrayIndex -- Get a gadget's index in the LayoutGadget array.
  807.  
  808.    SYNOPSIS
  809.     index = GU_GadgetArrayIndex(id, gadgets)
  810.     D0,D1,SR(Z)                 D0  A0
  811.  
  812.     WORD GU_GadgetArrayIndex(WORD, struct LayoutGadget *);
  813.  
  814.    FUNCTION
  815.  
  816.    INPUTS
  817.  
  818.    TAGS
  819.  
  820.    RESULT
  821.  
  822.    EXAMPLE
  823.  
  824.    NOTES
  825.  
  826.    WARNING
  827.  
  828.    BUGS
  829.  
  830.    SEE ALSO
  831. gadutil.library/GU_BlockInput                   gadutil.library/GU_BlockInput
  832.  
  833.    NAME
  834.     GU_BlockInput -- Block all input to a window.
  835.  
  836.    SYNOPSIS
  837.     GU_BlockInput(window)
  838.                   A0
  839.  
  840.     VOID GU_BlockInput(struct Window *);
  841.  
  842.    FUNCTION
  843.     Changes the window's pointer to the standard wait pointer (OS 2.0)
  844.     or the preferred wait pointer (OS 3.0+) and opens a requester to
  845.     block the user input of the given window. The requester that is
  846.     opened is not visible.
  847.  
  848.    INPUTS
  849.     window - the parent window for the requester. This is the window
  850.          that will be blocked for user input.
  851.  
  852.    EXAMPLE
  853.  
  854.     BlockInput(myWin);
  855.     About();
  856.     FreeInput();
  857.  
  858.     Will block the parent window for user input while displaying the
  859.     About requester of a program.
  860.  
  861.    SEE ALSO
  862.     GU_FreeInput()
  863. gadutil.library/GU_FreeInput                     gadutil.library/GU_FreeInput
  864.  
  865.    NAME
  866.     GU_FreeInput -- Unblock input to a blocked window.
  867.  
  868.    SYNOPSIS
  869.     GU_FreeInput(window)
  870.                  A0
  871.  
  872.     VOID GU_FreeInput(struct Window *);
  873.  
  874.    FUNCTION
  875.     Unblock a window's user input. Call this function after blocking
  876.     the input with GU_BlockInput().
  877.  
  878.    INPUTS
  879.     window - the window that was blocked with GU_BlockInput().
  880.  
  881.    EXAMPLE
  882.  
  883.     BlockInput(myWin);
  884.     About();
  885.     FreeInput();
  886.  
  887.     Will block the parent window for user input while displaying the
  888.     About requester of a program.
  889.  
  890.    SEE ALSO
  891.     GU_BlockInput()
  892. gadutil.library/GU_FreeGadgets                 gadutil.library/GU_FreeGadgets
  893.  
  894.    NAME
  895.     GU_FreeGadgets -- Free a linked list of gadgets.
  896.  
  897.    SYNOPSIS
  898.     GU_FreeGadgets(glist)
  899.                    A0
  900.  
  901.     VOID GU_FreeGadgets(struct Gadget *);
  902.  
  903.    FUNCTION
  904.     Frees all gadgets found on the linked list of gadgets beginning
  905.     with the specified one. Frees all the memory that was allocated
  906.     by GU_CreateGadgetA(). This function will return safely with no
  907.     action if it recieves a NULL parameter.
  908.  
  909.     Use this function in place of gadtools/FreeGadgets().
  910.  
  911.    INPUTS
  912.     glist - pointer to the first gadget in list to be freed
  913.  
  914.    SEE ALSO
  915.     GU_CreateGadgetA()
  916. gadutil.library/GU_SetGUGadAttrsA           gadutil.library/GU_SetGUGadAttrsA
  917.  
  918.    NAME
  919.     GU_SetGUGadAttrsA -- Change the attributes of a GadUtil gadget.
  920.  
  921.    SYNOPSIS
  922.     GU_SetGUGadAttrsA(gad_info, gad, win, taglist)
  923.                          A0        A1   A2   A3
  924.  
  925.     VOID GU_SetGadAttrsA(APTR, struct Gadget *, struct Window *,
  926.                 struct TagItem *);
  927.  
  928.    FUNCTION
  929.  
  930.    INPUTS
  931.  
  932.    TAGS
  933.  
  934.    RESULT
  935.  
  936.    EXAMPLE
  937.  
  938.    NOTES
  939.  
  940.    WARNING
  941.  
  942.    BUGS
  943.  
  944.    SEE ALSO
  945. gadutil.library/GU_CoordsInGadBox           gadutil.library/GU_CoordsInGadBox
  946.  
  947.    NAME
  948.     GU_CoordsInGadBox -- Check if a coordinate pair is within a gadget.
  949.  
  950.    SYNOPSIS
  951.     IsInBox = GU_CoordsInGadBox(coords, gad)
  952.     D0,SR(Z)                    D0      A0
  953.  
  954.     BOOL GU_CoordsInGadBox(ULONG, struct Gadget *);
  955.  
  956.    FUNCTION
  957.     Check if a coordinate pair is within a gadget's border. This
  958.     function may be used to make coordinate sensitive AppWindows
  959.     (allows the user to drop a file on a string gadget etc.).
  960.     To use this function, you must save the coordinates from the
  961.     recieved message (AppMessage, IntuiMessage) to have something
  962.     to compare against.
  963.  
  964.    INPUTS
  965.     coords - a combined LONG of both the X and Y coordinates to
  966.          compare against. The X coordinate should be in the
  967.          upper word of the parameter.
  968.  
  969.     gad - the gadget to check the coordinates against.
  970.  
  971.    RESULT
  972.     IsInBox - TRUE if both given coordinates was within the gadget's
  973.           outer box (X coord is between gadx and gadx+gadw,
  974.           Y coord is between gady and gady+gadh). Otherwise this
  975.           function will return FALSE.
  976.  
  977.    EXAMPLES
  978.     Assembly language:
  979.         move.l    am_MouseX(a0),d0    ; Get X and Y coordinates
  980.         move.l    mystrgad(pc),a0
  981.         move.l    GadUtilBase(pc),a6
  982.         jsr    _LVOGU_CoordsInGadBox(a6)
  983.         beq.b    .notinbox        ; Not in gadget box
  984.     
  985.         ; Do what you want to do if the coordinates are
  986.         ; within the gadget box
  987.     .notinbox:
  988.         ; Here, you may want to check for some other gadgets
  989.  
  990.  
  991.     C:
  992.         long coords;
  993.         coords = (LONG)appmsg->MouseX << 16 | appmsg->MouseY;
  994.         if (CoordsInGadBox(coords,mystrgad) = TRUE)
  995.         {
  996.             /* Do what you want to do if the coordinates
  997.                are within the gadget box */
  998.         }
  999.         else
  1000.         {
  1001.             /* Here, you may want to check for some other
  1002.                gadgets */
  1003.         }
  1004. gadutil.library/GU_GetGadgetPtr               gadutil.library/GU_GetGadgetPtr
  1005.  
  1006.    NAME
  1007.     GU_GetGadgetPtr -- Get a pointer to a gadget's gadget structure.
  1008.  
  1009.    SYNOPSIS
  1010.     gad = GU_GetGadgetPtr(id, gadgets)
  1011.     D0,SR(Z)              D0  A0
  1012.  
  1013.     struct Gadget *GU_GetGadgetPtr(UWORD, struct LayoutGadget *);
  1014.  
  1015.    FUNCTION
  1016.     Find a gadget's gadget structure by giving its ID. The gadget
  1017.     pointer is always found last in the LayoutGadget structure. You
  1018.     can use this function to get that pointer.
  1019.     It is also possible to get the gadget structure by taking it
  1020.     directly from the LayoutGadget structure array, but then you
  1021.     must know exactly in which structure it is located. Assembly
  1022.     language programmers can use a PC relative pointer to get the
  1023.     gadget pointer.
  1024.     
  1025.    INPUTS
  1026.     id - the ID of the gadget to search for
  1027.  
  1028.     gadgets - a pointer to the array of LayoutGadget structures.
  1029.  
  1030.    RESULT
  1031.     gad - pointer to the requested gadget. For bevelboxes, this
  1032.           function will return a BBoxData structure.
  1033.  
  1034.    EXAMPLE
  1035.  
  1036.      Some of the LayoutGadget structures from BetterTest.c:
  1037.  
  1038.      struct LayoutGadget gadgets[] = {
  1039.     { MSG_NEXTDRIVE, NextDriveGad, StdGTTags,   NULL },
  1040.     { MSG_PREVDRIVE, PrevDriveGad, StdGTTags,   NULL },
  1041.     { MSG_DRIVE,     DriveGad,     DriveGTTags, NULL },
  1042.     { MSG_REQUESTER, ReqGad,       StdGTTags,   NULL },
  1043.     { MSG_CHECKME,   CheckBoxGad,  StdGTTags,   NULL },
  1044.     { MSG_FILENAME,  FileNameGad,  StdGTTags,   NULL },
  1045.     { -1,            NULL,         NULL,        NULL }
  1046.      };
  1047.  
  1048.     The examples should get the gadget structure of the Requester
  1049.     gadget (not assuming that ID's begin with 0).
  1050.     There is two methods you can use to get a gadgets structure:
  1051.  
  1052.     1. Use the pointer in the array directly:
  1053.  
  1054.     thegadget = gadgets[3].lg_Gadget
  1055.  
  1056.     This will only work if you know in which LayoutGadget structure
  1057.     the gadget is in.
  1058.  
  1059.     2. Use this library function:
  1060.  
  1061.     thegadget = GU_GetGadgetPtr(MSG_REQUESTER, gadgets);
  1062.  
  1063.     This will always work if all gadgets have a unique ID.
  1064.  
  1065.  
  1066.      Some of the LayoutGadget structures from BetterTest.s:
  1067.  
  1068.     gadgets:
  1069.      GADGET  MSG_NEXTDRIVE,  NextDriveGad,   StdGTTags
  1070.      GADGET  MSG_PREVDRIVE,  PrevDriveGad,   StdGTTags
  1071.      GADGET  MSG_DRIVE,      DriveGad,       DriveGTTags
  1072.      GADGET  MSG_REQUESTER,  ReqGad,         StdGTTags
  1073.      GADGET  MSG_CHECKME,    CheckBoxGad,    StdGTTags
  1074.      GADGET  MSG_FILENAME,   FileNameGad,    StdGTTags
  1075.      GADGET  -1,NULL,NULL
  1076.  
  1077.      Assembly language programmers can use three methods to get the
  1078.      pointer:
  1079.  
  1080.     1. Use the pointer in the array directly:
  1081.  
  1082.         lea.l    gadgets(pc),a0    ; Get array
  1083.         moveq.l    #lg_SIZEOF,d0    ; Get the size of the LayoutGadget
  1084.         mulu    #3,d0        ;  struct and calculate offset to
  1085.                     ;  the right structure in the array
  1086.         move.l    lg_Gadget(a0,d0.l),d0    ; Get the gadget pointer
  1087.  
  1088.     This will only work if you know in which LayoutGadget structure
  1089.     the gadget is in.
  1090.  
  1091.     2. Use this library function:
  1092.  
  1093.         lea.l    gadgets(pc),a0    ; Get array
  1094.         moveq.l    #MSG_REQUESTER,d0    ; Gadget to search for
  1095.         jsr    _LVOGU_GetGadgetPtr    ; Get gadget, result in D0
  1096.  
  1097.     This will always work if all gadgets have a unique ID.
  1098.  
  1099.     3. Use an extra label for each gadget that should be easy to
  1100.        access:
  1101.  
  1102.     gadgets:
  1103.      GADGET  MSG_NEXTDRIVE,  NextDriveGad,   StdGTTags
  1104.      GADGET  MSG_PREVDRIVE,  PrevDriveGad,   StdGTTags
  1105.      GADGET  MSG_DRIVE,      DriveGad,       DriveGTTags
  1106.      GADGET  MSG_REQUESTER,  ReqGad,         StdGTTags
  1107.     reqgad:        equ    *-4
  1108.      GADGET  MSG_CHECKME,    CheckBoxGad,    StdGTTags
  1109.      GADGET  MSG_FILENAME,   FileNameGad,    StdGTTags
  1110.     filenamegad:    equ    *-4
  1111.      GADGET  -1,NULL,NULL
  1112.  
  1113.         move.l    reqgad(pc),d0        ; Get the gadget
  1114.  
  1115.     This will always work.
  1116. gadutil.library/GU_TextWidth                     gadutil.library/GU_TextWidth
  1117.  
  1118.    NAME
  1119.     GU_TextWidth -- Calculate the pixel length of a text string.
  1120.  
  1121.    SYNOPSIS
  1122.     textwidth = GU_TextWidth(string, textattr)
  1123.     D0                       A0      A1
  1124.  
  1125.     ULONG GU_TextWidth(STRPTR, struct TextAttr *);
  1126.  
  1127.    FUNCTION
  1128.     Calculate the length of the text, using the specified font. This
  1129.     function will open the required font, if it isn't opened before.
  1130.  
  1131.    INPUTS
  1132.     string - NULL terminated text to calculate width of.
  1133.  
  1134.     textattr - a filled in TextAttr structure. Only the IText and
  1135.            ITextFont fields of the structure have to be filled in.
  1136.  
  1137.    RESULT
  1138.     textwidth - pixel length of the text
  1139. gadutil.library/GU_GetLocaleStr               gadutil.library/GU_GetLocaleStr
  1140.  
  1141.    NAME
  1142.     GU_GetLocaleStr -- Get a localized string from a catalog.
  1143.  
  1144.    SYNOPSIS
  1145.     string = GU_GetLocaleStr(stringID, catalog, defstrings)
  1146.     D0,A0                    D0        A0       A1
  1147.  
  1148.     STRPTR GU_GetLocaleStr(ULONG, struct Catalog *, struct AppString *);
  1149.  
  1150.    FUNCTION
  1151.     Get a localized string, or the default string, from a catalog or from
  1152.     the programs built-in strings.
  1153.  
  1154.    INPUTS
  1155.     stringID - the ID of the string to get
  1156.  
  1157.     catalog - the opened catalog for the program
  1158.  
  1159.     defstrings - an array of AppString structures, the programs built-in
  1160.              strings and ID's.
  1161.  
  1162.    RESULT
  1163.     string - the address of the localized string, or if the catalog was not
  1164.          available (or if the selected language was the programs built-
  1165.          ins), a pointer to the default string with the given ID.
  1166.  
  1167.    SEE ALSO
  1168.     GU_OpenCatalog(), GU_CloseCatalog()
  1169. gadutil.library/GU_CreateLocMenuA           gadutil.library/GU_CreateLocMenuA
  1170.  
  1171.    NAME
  1172.     GU_CreateLocMenuA -- Create a menu with localized items.
  1173.  
  1174.    SYNOPSIS
  1175.     menu = GU_CreateLocMenuA(newmenu, gad_info, createtags, layouttags)
  1176.     D0                       A0       A1        A2             A3
  1177.  
  1178.     struct Menu *GU_GetLocaleStr(struct NewMenu *, APTR,
  1179.                 struct TagItem *, struct TagItem *);
  1180.  
  1181.    FUNCTION
  1182.     Create and layout a localized menu. This function replaces both
  1183.     the gadtools/CreateMenusA and gadtools/LayoutMenusA functions. See
  1184.     those functions for a more in-depth description of this function.
  1185.  
  1186.    INPUTS
  1187.     newmenu - pointer to an array of initialized struct NewMenus. This
  1188.           differs from the GadTools function in that, instead of
  1189.           giving pointers to strings in the nm_Label and nm_CommKey
  1190.           fields of the structure, you should put a string ID in the
  1191.           nm_Label field of the structure. The string must be in the
  1192.           format "A\x00About...". The nm_CommKey field should be left
  1193.           empty.  ^^^^^^
  1194.               |    |
  1195.               |    |- nm_Label field for the NewMenu structure
  1196.               |
  1197.               |- nm_CommKey replacement. If no keyboard shortcut,
  1198.                     this field MUST CONTAIN A SPACE CHAR.
  1199.                     The \x00 is a NULL character.
  1200.  
  1201.     gad_info - the value returned from GU_LayoutGadgetsA
  1202.  
  1203.     createtags - tags for the "CreateMenusA" part of this routine. All
  1204.              gadtools tags are supported (directly passed to GT).
  1205.  
  1206.     layouttags - tags for the "LayoutMenusA" part of this routine. All
  1207.              gadtools tags are supported (directly passed to GT).
  1208.  
  1209.    TAGS
  1210.     See the gadtools functions CreateMenusA and LayoutMenusA.
  1211.  
  1212.    RESULT
  1213.     menu - pointer to the resulting initialized and laid out menu structure,
  1214.            ready to pass to the intuition function SetMenuStrip, or NULL for
  1215.            failure.
  1216.  
  1217.    SEE ALSO
  1218.     GU_FreeMenusA(), gadtools/CreateMenusA(), gadtools/LayoutMenusA(),
  1219.     gadtools/FreeMenus()
  1220. gadutil.library/GU_OpenCatalog                 gadutil.library/GU_OpenCatalog
  1221.  
  1222.    NAME
  1223.     GU_OpenCatalog -- Open a message catalog.
  1224.  
  1225.    SYNOPSIS
  1226.     catalog = GU_OpenCatalog(name, version)
  1227.     D0                       A0    D0
  1228.  
  1229.     struct Catalog *GU_OpenCatalog(STRPTR, ULONG);
  1230.  
  1231.    FUNCTION
  1232.     This function opens a message catalog. Catalogs contain all the
  1233.     text strings that an application uses. These strings can easily
  1234.     be replaced by strings in a different language, which causes the
  1235.     application to magically start operation in that new language.
  1236.  
  1237.     Catalogs originally come from disk files. This function searches
  1238.     for them in the following places:
  1239.  
  1240.         PROGDIR:Catalogs/languageName/name
  1241.         LOCALE:Catalogs/languageName/name
  1242.  
  1243.     where languageName is the name of the language associated with the
  1244.     locale parameter.
  1245.  
  1246.    INPUTS
  1247.     catalogname - the NULL terminated name of the catalog to open (just
  1248.               the name, not the complete path to it).
  1249.  
  1250.     version - required version of the catalog to open. Passign 0 as version
  1251.           number means that the program will accept any found version of
  1252.           the catalog. Other values than 0 means exactly that version.
  1253.  
  1254.    RESULT
  1255.     catalog - A message catalog to use with GU_GetLocaleStr or any of the
  1256.           Locale library functions or NULL. NULL is returned on error
  1257.           or if the application can use its built-in strings instead
  1258.           of loading a catalog from disk.
  1259.  
  1260.    EXAMPLE
  1261.     GU_OpenCatalog("myprogram.catalog",0);
  1262.  
  1263.     will open any version of the catalog file "myprogram.catalog" found
  1264.     in either PROGDIR:Catalogs/languageName/ (where the program was started
  1265.     from), or LOCALE:Catalogs/languageName/.
  1266.  
  1267.     GU_OpenCatalog("myprogram.catalog",5);
  1268.  
  1269.     will open version 5 of the catalog file. If v5 is not available, the
  1270.     program will use its internal strings.
  1271.  
  1272.    NOTES
  1273.     If you want to specify other tags than the version tag, you must
  1274.     use the Locale library OpenCatalog(). This function is generally a
  1275.     shortcut to that function. By using this routine, you may not need
  1276.     to open Locale library at all.
  1277.  
  1278.     This routine assumes that the built-in language of the program is
  1279.     english. If you write your programs in another language, you must
  1280.     open the catalog by yourself.
  1281.  
  1282.    SEE ALSO
  1283.     GU_CloseCatalog(), locale/OpenCatalog()
  1284. gadutil.library/GU_CloseCatalog               gadutil.library/GU_CloseCatalog
  1285.  
  1286.    NAME
  1287.     GU_CloseCatalog -- Close a message catalog.
  1288.  
  1289.    SYNOPSIS
  1290.     GU_CloseCatalog(catalog)
  1291.                     A0
  1292.  
  1293.     VOID GU_CloseCatalog(struct Catalog *);
  1294.  
  1295.    FUNCTION
  1296.     Concludes access to a message catalog. The usage count of the
  1297.     catalog is decremented. When this count reaches 0, the catalog
  1298.     can be expunged from system memory whenever a memory panic occurs.
  1299.  
  1300.    INPUTS
  1301.     catalog - the message catalog to close. A NULL catalog is a valid
  1302.           parameter and is simply ignored.
  1303.  
  1304.    NOTES
  1305.     This function is a shortcut to the locale/CloseCatalog() function.
  1306.  
  1307.    SEE ALSO
  1308.     GU_OpenCatalog(), GU_GetLocaleStr()
  1309. gadutil.library/GU_DisableGadget             gadutil.library/GU_DisableGadget
  1310.  
  1311.    NAME
  1312.     GU_DisableGadget -- Disable / Enable a gadget.
  1313.  
  1314.    SYNOPSIS
  1315.     GU_DisableGadget(status, gadget, window)
  1316.                      D0,     A0,     A1
  1317.  
  1318.     VOID GU_DisableGadget(BOOL, struct Gadget *, struct Window *);
  1319.  
  1320.    FUNCTION
  1321.  
  1322.    INPUTS
  1323.  
  1324.    TAGS
  1325.  
  1326.    RESULT
  1327.  
  1328.    EXAMPLE
  1329.  
  1330.    NOTES
  1331.  
  1332.    WARNING
  1333.  
  1334.    BUGS
  1335.  
  1336.    SEE ALSO
  1337. gadutil.library/GU_SetToggle                     gadutil.library/GU_SetToggle
  1338.  
  1339.    NAME
  1340.     GU_SetToggle -- Change status of a toggle-select gadget.
  1341.  
  1342.    SYNOPSIS
  1343.     GU_SetToggle(status, gadget, window)
  1344.                  D0,     A0,     A1
  1345.  
  1346.     VOID GU_SetToggle(BOOL, struct Gadget *, struct Window *);
  1347.  
  1348.    FUNCTION
  1349.  
  1350.    INPUTS
  1351.  
  1352.    TAGS
  1353.  
  1354.    RESULT
  1355.  
  1356.    EXAMPLE
  1357.  
  1358.    NOTES
  1359.  
  1360.    WARNING
  1361.  
  1362.    BUGS
  1363.  
  1364.    SEE ALSO
  1365. gadutil.library/GU_RefreshBoxes               gadutil.library/GU_RefreshBoxes
  1366.  
  1367.    NAME
  1368.     GU_RefreshBoxes -- Redraw all bevel boxes in a window.
  1369.  
  1370.    SYNOPSIS
  1371.     GU_RefreshBoxes(window, gad_info)
  1372.                     A0      A1
  1373.  
  1374.     VOID GU_RefreshBoxes(struct Window *, APTR);
  1375.  
  1376.    FUNCTION
  1377.  
  1378.    INPUTS
  1379.  
  1380.    TAGS
  1381.  
  1382.    RESULT
  1383.  
  1384.    EXAMPLE
  1385.  
  1386.    NOTES
  1387.  
  1388.    WARNING
  1389.  
  1390.    BUGS
  1391.  
  1392.    SEE ALSO
  1393. gadutil.library/GU_RefreshWindow             gadutil.library/GU_RefreshWindow
  1394.  
  1395.    NAME
  1396.     GU_RefreshWindow -- Redraw bevel boxes and gadgets in a window.
  1397.  
  1398.    SYNOPSIS
  1399.     GU_RefreshWindow(window, gad_info)
  1400.                      A0      A1
  1401.  
  1402.     VOID GU_RefreshWindow(struct Window *, APTR);
  1403.  
  1404.    FUNCTION
  1405.     Perform the initial refresh of all the GadTools gadgets you have
  1406.     created. After you have opened your window, you must call this
  1407.     function. Or, if you have opened your window without gadgets,
  1408.     you add the gadgets with intuition/AddGList(), refresh them using
  1409.     intuition/RefreshGList(), then call this function. You should not
  1410.     need this function at other times.
  1411.  
  1412.     This function differs from the gadtools/GT_RefreshWindow(), in that
  1413.     is also renders all bevelbox kind gadgets. If NULL is given in
  1414.     gad_info, no boxes will be rendered, and this function will work
  1415.     exactly as the GT_RefreshWindow().
  1416.  
  1417.    INPUTS
  1418.     window - pointer to the window containing GadTools gadgets.
  1419.  
  1420.     gad_info - the value returned from GU_LayoutGadgetsA(), or NULL.
  1421.  
  1422.    SEE ALSO
  1423.     GU_BeginRefresh()
  1424. gadutil.library/GU_OpenFont                       gadutil.library/GU_OpenFont
  1425.  
  1426.    NAME
  1427.     GU_OpenFont -- Load and get a pointer to a disk or system font.
  1428.  
  1429.    SYNOPSIS
  1430.     font = GU_OpenFont(textAttr)
  1431.     D0                 A0
  1432.  
  1433.     struct TextFont *GU_OpenFont(struct TextAttr *);
  1434.  
  1435.    FUNCTION
  1436.  
  1437.    INPUTS
  1438.  
  1439.    TAGS
  1440.  
  1441.    RESULT
  1442.  
  1443.    EXAMPLE
  1444.  
  1445.    NOTES
  1446.  
  1447.    WARNING
  1448.  
  1449.    BUGS
  1450.  
  1451.    SEE ALSO
  1452. gadutil.library/GU_NewList                         gadutil.library/GU_NewList
  1453.  
  1454.    NAME
  1455.     GU_NewList -- Initialize a list header for use.
  1456.  
  1457.    SYNOPSIS
  1458.     GU_NewList(list)
  1459.                A0
  1460.  
  1461.     VOID GU_NewList(struct List *);
  1462.  
  1463.    FUNCTION
  1464.  
  1465.    INPUTS
  1466.  
  1467.    TAGS
  1468.  
  1469.    RESULT
  1470.  
  1471.    EXAMPLE
  1472.  
  1473.    NOTES
  1474.  
  1475.    WARNING
  1476.  
  1477.    BUGS
  1478.  
  1479.    SEE ALSO
  1480. gadutil.library/GU_ClearList                     gadutil.library/GU_ClearList
  1481.  
  1482.    NAME
  1483.     GU_ClearList -- Clear a listview gadget and deallocate all its nodes.
  1484.  
  1485.    SYNOPSIS
  1486.     GU_ClearList(gad, win, list)
  1487.                  D0   A0   A1
  1488.  
  1489.     VOID GU_ClearList(struct Gadget *, struct Window *, struct List *);
  1490.  
  1491.    FUNCTION
  1492.  
  1493.    INPUTS
  1494.  
  1495.    TAGS
  1496.  
  1497.    RESULT
  1498.  
  1499.    EXAMPLE
  1500.  
  1501.    NOTES
  1502.  
  1503.    WARNING
  1504.  
  1505.    BUGS
  1506.  
  1507.    SEE ALSO
  1508. gadutil.library/GU_DetachList                   gadutil.library/GU_DetachList
  1509.  
  1510.    NAME
  1511.     GU_DetachList -- Disconnect the list from a listview gadget.
  1512.  
  1513.    SYNOPSIS
  1514.     GU_DetachList(gad, win)
  1515.                   D0   A0
  1516.  
  1517.     VOID GU_DetachList(struct Gadget *, struct Window *);
  1518.  
  1519.    FUNCTION
  1520.  
  1521.    INPUTS
  1522.  
  1523.    TAGS
  1524.  
  1525.    RESULT
  1526.  
  1527.    EXAMPLE
  1528.  
  1529.    NOTES
  1530.  
  1531.    WARNING
  1532.  
  1533.    BUGS
  1534.  
  1535.    SEE ALSO
  1536. gadutil.library/GU_AttachList                   gadutil.library/GU_AttachList
  1537.  
  1538.    NAME
  1539.     GU_AttachList -- Change a listview's current list.
  1540.  
  1541.    SYNOPSIS
  1542.     GU_AttachList(gad, win, list)
  1543.                   D0   A0   A1
  1544.  
  1545.     VOID GU_AttachList(struct Gadget *, struct Window *, struct List *);
  1546.  
  1547.    FUNCTION
  1548.  
  1549.    INPUTS
  1550.  
  1551.    TAGS
  1552.  
  1553.    RESULT
  1554.  
  1555.    EXAMPLE
  1556.  
  1557.    NOTES
  1558.  
  1559.    WARNING
  1560.  
  1561.    BUGS
  1562.  
  1563.    SEE ALSO
  1564. gadutil.library/GU_AddTail                         gadutil.library/GU_AddTail
  1565.  
  1566.    NAME
  1567.     GU_AddTail -- Add a node to the end of a listview's list.
  1568.  
  1569.    SYNOPSIS
  1570.     node = GU_AddTail(gad, string, list)
  1571.     D0                D0   A0      A1
  1572.  
  1573.     struct Node *GU_AddTail(struct Gadget *, STRPTR, struct List *);
  1574.  
  1575.    FUNCTION
  1576.  
  1577.    INPUTS
  1578.  
  1579.    TAGS
  1580.  
  1581.    RESULT
  1582.  
  1583.    EXAMPLE
  1584.  
  1585.    NOTES
  1586.  
  1587.    WARNING
  1588.  
  1589.    BUGS
  1590.  
  1591.    SEE ALSO
  1592. gadutil.library/GU_ChangeStr                     gadutil.library/GU_ChangeStr
  1593.  
  1594.    NAME
  1595.     GU_ChangeStr -- Change the contents of string gadget.
  1596.  
  1597.    SYNOPSIS
  1598.     GU_ChangeStr(gad, string, win)
  1599.                  D0   A0      A1
  1600.  
  1601.     VOID GU_ChangeStr(struct Gadget *, struct Window *, STRPTR);
  1602.  
  1603.    FUNCTION
  1604.  
  1605.    INPUTS
  1606.  
  1607.    TAGS
  1608.  
  1609.    RESULT
  1610.  
  1611.    EXAMPLE
  1612.  
  1613.    NOTES
  1614.  
  1615.    WARNING
  1616.  
  1617.    BUGS
  1618.  
  1619.    SEE ALSO
  1620. gadutil.library/GU_CreateContext             gadutil.library/GU_CreateContext
  1621.  
  1622.    NAME
  1623.     GU_CreateContext -- Create a space for GadTools context data.
  1624.  
  1625.    SYNOPSIS
  1626.     gad = GU_CreateContext(glistptr)
  1627.     D0                     A0
  1628.  
  1629.     struct Gadget *GU_CreateContext(struct Gadget **);
  1630.  
  1631.    FUNCTION
  1632.  
  1633.    INPUTS
  1634.  
  1635.    TAGS
  1636.  
  1637.    RESULT
  1638.  
  1639.    EXAMPLE
  1640.  
  1641.    NOTES
  1642.  
  1643.    WARNING
  1644.  
  1645.    BUGS
  1646.  
  1647.    SEE ALSO
  1648.     gadtools/CreateContext()
  1649. gadutil.library/GU_GetGadgetAttrsA         gadutil.library/GU_GetGadgetAttrsA
  1650.  
  1651.    NAME
  1652.     GU_GetGadgetAttrsA -- Request the attributes of a GadTools gadget.
  1653.  
  1654.    SYNOPSIS
  1655.     numProcessed = GU_GetGadgetAttrsA(gad, win, req, taglist)
  1656.     D0                                A0   A1   A2   A3
  1657.  
  1658.     LONG *GU_GetGadgetAttrsA(struct Gadget *, struct Window *,
  1659.                  struct Requester *, struct TagItem *);
  1660.  
  1661.    FUNCTION
  1662.  
  1663.    INPUTS
  1664.  
  1665.    TAGS
  1666.  
  1667.    RESULT
  1668.  
  1669.    EXAMPLE
  1670.  
  1671.    NOTES
  1672.  
  1673.    WARNING
  1674.  
  1675.    BUGS
  1676.  
  1677.    SEE ALSO
  1678.     GU_SetGadgetAttrsA(), gadtools/GT_GetGadgetAttrsA()
  1679. gadutil.library/GU_CreateMenusA               gadutil.library/GU_CreateMenusA
  1680.  
  1681.    NAME
  1682.     GU_CreateMenusA -- Allocate and fill out a menu structure.
  1683.  
  1684.    SYNOPSIS
  1685.     menu = GU_CreateMenusA(newmenu, taglist)
  1686.     D0                     A0       A1
  1687.  
  1688.     struct Menu *GU_CreateMenusA(struct NewMenu *, struct TagItem *);
  1689.  
  1690.    FUNCTION
  1691.  
  1692.    INPUTS
  1693.  
  1694.    TAGS
  1695.  
  1696.    RESULT
  1697.  
  1698.    EXAMPLE
  1699.  
  1700.    NOTES
  1701.  
  1702.    WARNING
  1703.  
  1704.    BUGS
  1705.  
  1706.    SEE ALSO
  1707.     GU_LayoutMenusA(), GU_FreeMenus(), gadtools/CreateMenusA()
  1708. gadutil.library/GU_FreeMenus                     gadutil.library/GU_FreeMenus
  1709.  
  1710.    NAME
  1711.     GU_FreeMenus -- Frees memory allocated by GU_CreateMenusA().
  1712.  
  1713.    SYNOPSIS
  1714.     GU_FreeMenus(menu)
  1715.                  A0
  1716.  
  1717.     VOID GU_FreeMenus(struct Menu *);
  1718.  
  1719.    FUNCTION
  1720.  
  1721.    INPUTS
  1722.  
  1723.    TAGS
  1724.  
  1725.    RESULT
  1726.  
  1727.    EXAMPLE
  1728.  
  1729.    NOTES
  1730.  
  1731.    WARNING
  1732.  
  1733.    BUGS
  1734.  
  1735.    SEE ALSO
  1736.     GU_CreateMenusA(), gadtools/FreeMenus()
  1737. gadutil.library/GU_LayoutMenuItemsA       gadutil.library/GU_LayoutMenuItemsA
  1738.  
  1739.    NAME
  1740.     GU_LayoutMenuItemsA -- Position all the menu items.
  1741.  
  1742.    SYNOPSIS
  1743.     success = GU_LayoutMenuItemsA(menuitem, vi, tags)
  1744.     D0                            A0        A1  A2
  1745.  
  1746.     BOOL GU_LayoutMenuItemsA(struct MenuItem *, APTR, struct TagItem *);
  1747.  
  1748.    FUNCTION
  1749.  
  1750.    INPUTS
  1751.  
  1752.    TAGS
  1753.  
  1754.    RESULT
  1755.  
  1756.    EXAMPLE
  1757.  
  1758.    NOTES
  1759.  
  1760.    WARNING
  1761.  
  1762.    BUGS
  1763.  
  1764.    SEE ALSO
  1765.     GU_CreateMenusA(), GU_GetVisualInfoA(), gadtools/LayoutMenuItemsA()
  1766. gadutil.library/GU_LayoutMenusA       gadutil.library/GU_LayoutMenusA
  1767.  
  1768.    NAME
  1769.     GU_LayoutMenusA -- Position all the menus and menu items.
  1770.  
  1771.    SYNOPSIS
  1772.     success = GU_LayoutMenusA(menu, vi, taglist)
  1773.     D0                        A0    A1  A2
  1774.  
  1775.     BOOL GU_LayoutMenusA(struct Menu *, APTR, struct TagItem *);
  1776.  
  1777.    FUNCTION
  1778.  
  1779.    INPUTS
  1780.  
  1781.    TAGS
  1782.  
  1783.    RESULT
  1784.  
  1785.    EXAMPLE
  1786.  
  1787.    NOTES
  1788.  
  1789.    WARNING
  1790.  
  1791.    BUGS
  1792.  
  1793.    SEE ALSO
  1794.     GU_CreateMenusA(), GU_GetVisualInfoA(), gadtools/LayoutMenusA()
  1795. gadutil.library/GU_GetVisualInfoA           gadutil.library/GU_GetVisualInfoA
  1796.  
  1797.    NAME
  1798.     GU_GetVisualInfoA -- Get information GadTools needs for visuals.
  1799.  
  1800.    SYNOPSIS
  1801.     vi = GU_GetVisualInfoA(screen, taglist)
  1802.     D0                     A0      A1
  1803.  
  1804.     APTR GU_GetVisualInfoA(struct Screen *, struct TagItem *);
  1805.  
  1806.    FUNCTION
  1807.  
  1808.    INPUTS
  1809.  
  1810.    TAGS
  1811.  
  1812.    RESULT
  1813.  
  1814.    EXAMPLE
  1815.  
  1816.    NOTES
  1817.  
  1818.    WARNING
  1819.  
  1820.    BUGS
  1821.  
  1822.    SEE ALSO
  1823.     GU_FreeVisualInfo(), gadtools/FreeVisualInfo(), intuition(/LockPubScreen(),
  1824.     intuition/UnlockPubScreen()
  1825. gadutil.library/GU_FreeVisualInfo           gadutil.library/GU_FreeVisualInfo
  1826.  
  1827.    NAME
  1828.     GU_FreeVisualInfo -- Return any resources taken by GU_GetVisualInfoA
  1829.  
  1830.    SYNOPSIS
  1831.     GU_FreeVisualInfo(vi)
  1832.                       A0
  1833.  
  1834.     VOID GU_FreeVisualInfo(APTR);
  1835.  
  1836.    FUNCTION
  1837.  
  1838.    INPUTS
  1839.  
  1840.    TAGS
  1841.  
  1842.    RESULT
  1843.  
  1844.    EXAMPLE
  1845.  
  1846.    NOTES
  1847.  
  1848.    WARNING
  1849.  
  1850.    BUGS
  1851.  
  1852.    SEE ALSO
  1853.     GU_GetVisualInfoA(), gadtools/FreeVisualInfo()
  1854. gadutil.library/GU_BeginRefresh               gadutil.library/GU_BeginRefresh
  1855.  
  1856.    NAME
  1857.     GU_BeginRefresh -- Begin refreshing friendly to GadTools.
  1858.  
  1859.    SYNOPSIS
  1860.     GU_BeginRefresh(win)
  1861.                     A0
  1862.  
  1863.     VOID GU_BeginRefresh(struct Window *);
  1864.  
  1865.    FUNCTION
  1866.  
  1867.    INPUTS
  1868.  
  1869.    TAGS
  1870.  
  1871.    RESULT
  1872.  
  1873.    EXAMPLE
  1874.  
  1875.    NOTES
  1876.  
  1877.    WARNING
  1878.  
  1879.    BUGS
  1880.  
  1881.    SEE ALSO
  1882.     GU_EndRefresh(), gadtools/GT_BeginRefresh, intuition/BeginRefresh()
  1883. gadutil.library/GU_EndRefresh                   gadutil.library/GU_EndRefresh
  1884.  
  1885.    NAME
  1886.     GU_EndRefresh -- End refreshing friendly to GadTools.
  1887.  
  1888.    SYNOPSIS
  1889.     GU_EndRefresh(win, complete)
  1890.                   A0   D0
  1891.  
  1892.     VOID GU_EndRefresh(struct Window *, BOOL);
  1893.  
  1894.    FUNCTION
  1895.  
  1896.    INPUTS
  1897.  
  1898.    TAGS
  1899.  
  1900.    RESULT
  1901.  
  1902.    EXAMPLE
  1903.  
  1904.    NOTES
  1905.  
  1906.    WARNING
  1907.  
  1908.    BUGS
  1909.  
  1910.    SEE ALSO
  1911.     GU_BeginRefresh(), gadtools/GT_EndRefresh(), intuition/EndRefresh()
  1912. gadutil.library/GU_FilterIMsg                   gadutil.library/GU_FilterIMsg
  1913.  
  1914.    NAME
  1915.     GU_FilterIMsg -- Filter an IntuiMessage through GadTools.
  1916.  
  1917.    SYNOPSIS
  1918.     modimsg = GU_FilterIMsg(imsg)
  1919.     D0                      A1
  1920.  
  1921.     struct IntuiMessage *GU_FilterIMsg(struct IntuiMessage *);
  1922.  
  1923.    FUNCTION
  1924.  
  1925.    INPUTS
  1926.  
  1927.    TAGS
  1928.  
  1929.    RESULT
  1930.  
  1931.    EXAMPLE
  1932.  
  1933.    NOTES
  1934.  
  1935.    WARNING
  1936.  
  1937.    BUGS
  1938.  
  1939.    SEE ALSO
  1940.     GU_GetIMsg(), GU_PostFilterIMsg(), gadtools/GT_FilterIMsg()
  1941. gadutil.library/GU_PostFilterIMsg           gadutil.library/GU_PostFilterIMsg
  1942.  
  1943.    NAME
  1944.     GU_PostFilterIMsg -- Return the unfiltered message after
  1945.                  GU_FilterIMsg() was called, and clean up.
  1946.  
  1947.    SYNOPSIS
  1948.     imsg = GU_PostFilterIMsg(modimsg)
  1949.     D0                       A1
  1950.  
  1951.     struct IntuiMessage *GU_PostFilterIMsg(struct IntuiMessage *);
  1952.  
  1953.    FUNCTION
  1954.  
  1955.    INPUTS
  1956.  
  1957.    TAGS
  1958.  
  1959.    RESULT
  1960.  
  1961.    EXAMPLE
  1962.  
  1963.    NOTES
  1964.  
  1965.    WARNING
  1966.  
  1967.    BUGS
  1968.  
  1969.    SEE ALSO
  1970.     GU_FilterIMsg(), gadtools/GT_PostFilterIMsg()
  1971. gadutil.library/GU_ReplyIMsg                     gadutil.library/GU_ReplyIMsg
  1972.  
  1973.    NAME
  1974.     GU_ReplyIMsg -- Reply a message obtained with GU_GetIMsg().
  1975.  
  1976.    SYNOPSIS
  1977.     GU_ReplyIMsg(imsg)
  1978.                  A1
  1979.  
  1980.     VOID GU_ReplyIMsg(struct IntuiMessage *);
  1981.  
  1982.    FUNCTION
  1983.     Return a modified IntuiMessage obtained with GU_GetIMsg(). If you
  1984.     use GU_GetIMsg(), use this function where you would normally have
  1985.     used exec/ReplyIMsg() or gadtools/GT_ReplyIMsg(). You may safely
  1986.     call this function with a NULL pointer (nothing will be done).
  1987.  
  1988.    INPUTS
  1989.     imsg - a modified IntuiMessage obtained with GT_GetIMsg(), or NULL
  1990.            in which case this function does nothing.
  1991.  
  1992.    NOTES
  1993.     When using GadUtil, you MUST explicitly GU_ReplyIMsg() all messages
  1994.     you receive. You cannot depend on CloseWindow() to handle messages
  1995.     you have not replied.
  1996.  
  1997.     Starting with V39, this function actually expects a pointer to an
  1998.     ExtIntuiMessage structure, but the prototype was not changed for
  1999.     source code compatibility with older software.
  2000.  
  2001.    SEE ALSO
  2002.     GU_GetIMsg()
  2003. gadutil.library/GU_DrawBevelBoxA             gadutil.library/GU_DrawBevelBoxA
  2004.  
  2005.    NAME
  2006.     GU_DrawBevelBoxA -- Draw a bevelled box.
  2007.  
  2008.    SYNOPSIS
  2009.     GU_DrawBevelBoxA(rport, left, top, width, height, taglist)
  2010.                      A0     D0    D1   D2     D3      A1
  2011.  
  2012.     VOID GU_DrawBevelBoxA(struct RastPort *, WORD, WORD, WORD, WORD,
  2013.                   struct TagItem *);
  2014.  
  2015.    FUNCTION
  2016.  
  2017.    INPUTS
  2018.  
  2019.    TAGS
  2020.  
  2021.    RESULT
  2022.  
  2023.    EXAMPLE
  2024.  
  2025.    NOTES
  2026.  
  2027.    WARNING
  2028.  
  2029.    BUGS
  2030.  
  2031.    SEE ALSO
  2032.     GU_GetVisualInfoA(), gadtools/DrawBevelBoxA()
  2033. gadutil.library/GU_FindNode                       gadutil.library/GU_FindNode
  2034.  
  2035.    NAME
  2036.     GU_FindNode -- Find the node structure of a given node number
  2037.  
  2038.    SYNOPSIS
  2039.     node = GU_FindNode(list, number)
  2040.     D0                 A0    D0
  2041.  
  2042.     struct Node *GU_FindNode(struct List *, WORD);
  2043.  
  2044.    FUNCTION
  2045.  
  2046.    INPUTS
  2047.  
  2048.    TAGS
  2049.  
  2050.    RESULT
  2051.  
  2052.    EXAMPLE
  2053.  
  2054.    NOTES
  2055.  
  2056.    WARNING
  2057.  
  2058.    BUGS
  2059.  
  2060.    SEE ALSO
  2061. gadutil.library/GU_NodeUp                           gadutil.library/GU_NodeUp
  2062.  
  2063.    NAME
  2064.     GU_NodeUp -- Move a node one step towards the top of the list
  2065.  
  2066.    SYNOPSIS
  2067.     success = GU_NodeUp(node, list)
  2068.     D0                  A0    A1
  2069.  
  2070.     BOOL GU_NodeUp(struct Node *, struct List *);
  2071.  
  2072.    FUNCTION
  2073.  
  2074.    INPUTS
  2075.  
  2076.    TAGS
  2077.  
  2078.    RESULT
  2079.  
  2080.    EXAMPLE
  2081.  
  2082.    NOTES
  2083.  
  2084.    WARNING
  2085.  
  2086.    BUGS
  2087.  
  2088.    SEE ALSO
  2089. gadutil.library/GU_NodeDown                       gadutil.library/GU_NodeDown
  2090.  
  2091.    NAME
  2092.     GU_NodeDown -- Move a node one step towards the end of the list
  2093.  
  2094.    SYNOPSIS
  2095.     success = GU_NodeDown(node, list)
  2096.     D0                    A0    A1
  2097.  
  2098.     BOOL GU_NodeDown(struct Node *, struct List *);
  2099.  
  2100.    FUNCTION
  2101.  
  2102.    INPUTS
  2103.  
  2104.    TAGS
  2105.  
  2106.    RESULT
  2107.  
  2108.    EXAMPLE
  2109.  
  2110.    NOTES
  2111.  
  2112.    WARNING
  2113.  
  2114.    BUGS
  2115.  
  2116.    SEE ALSO
  2117.